Method and apparatus for interactively tuning frequency hopping transmitter

ABSTRACT

A method and apparatus for interactively tuning a transmitter for use in a monitoring station is described. The monitor includes a voltage controlled oscillator producing a radiowave signal for use as a carrier. The voltage used to control the voltage controlled oscillator is provided by a voltage supply that produces an output voltage corresponding to an input data stream. The tuning station provides test data streams to the voltage supply and monitors the output frequencies of the transmitter to determine when the output frequency of the transmitter is above or below the maximum allowable output frequencies. When data streams corresponding to the maximum and minimum output frequencies are determined, they are stored in a memory in the monitoring station and a complete table of temperature-compensated data is generated based upon typical unit temperature drifts. The entire table is loaded into the monitoring station to provide maximum and minimum data sequences for various operating temperature ranges.

TECHNICAL FIELD

The present invention relates to interactively tuning radiowave transmitters.

BACKGROUND OF THE INVENTION

Several approaches to remotely collecting data from meter reading monitoring stations, such as those for gas and electric power meters, have been proposed.

In one system described in U.S. Pat. No. 4,614,945 to Brunius et al., multiple, battery-powered monitoring stations, such as gas meter monitors, are located throughout an area and each of the monitoring stations includes a transponder (referred to by Brunius as an Encoder/Receiver/Transmitter unit ("ERT")) for transmitting radiowave signals corresponding to data collected by the monitoring station. A mobile data collection unit collects data by traveling through the area, activating the ERTs to transmit their radiowave signals and receiving and decoding the radiowave signals to identify the data. To activate the ERTs, the mobile unit includes a transmitter that emits a "wake-up" or "interrogation" signal. All ERTs within range of the mobile unit, upon receiving the interrogation signal, respond by transmitting their accumulated data by transmitting their identification codes and accumulated data a plurality of times by means of serially spaced bursts.

At times, the mobile unit may be within range of several ERTs simultaneously and, because the mobile unit does not uniquely poll the individual ERTs, it may energize all ERTs within range of the wake-up signal simultaneously. Because more than one ERT may begin transmission at the same time, their signals may "collide" at the mobile unit. That is, radiowave signals from several of the transponders may arrive at the mobile unit together, such that the receiver within the mobile unit receives a combination of the various signals from the transponders. In such a case, the signals may be difficult to detect or may result in an incorrect signal being detected by the receiver.

Brunius treats the problem of signal collision by having the time interval between successive transmission bursts be determined as a function of the identification code of the transponder unit such that, with each transponder being assigned an identification code differing from other transponders in the area, the temporal spacing between bursts will differ between transponders. Nevertheless, the initial bursts may occur at the same time.

Brunius also varies transponder frequency to address the problem of collisions. Each transponder, upon receiving the wake-up signal, begins transmission at a preset transmission frequency and successive transmissions by the transponder are shifted to different frequencies. The frequency shift of successive transmissions is dependent upon the time interval, and thus the unit identification number.

Brunius does not teach a method of varying the frequency of the initial bursts. Instead, Brunius relies upon "tuning variances" to give differing initial frequencies of transmission. Because the Brunius system requires transmission and reception of wake up signal, it requires the mobile unit to include both a receiver and a transmitter and also requires the monitoring station to include a transponder to both transmit and receive data. Thus, though data transfer is unidirectional (from the monitor to the receiver) both the monitor and the receiver require transponders.

Because the Brunius units are battery powered, the units remain inactive in the absence of the "wake-up" signal to conserve power. Even though this intermittent activity may conserve some power, the batteries within the units still must be replaced eventually. Often, such replacement of the batteries requires removal of the monitoring meter. Governmental regulations require meters to be recalibrated whenever they are removed, so battery replacement typically involves returning the meter to a repair facility for recalibration.

An additional problem that must be addressed in remote data collection systems is confinement of transmission with specified frequency limits. The amount of allowable frequency variation is limited by various factors. For example, the available frequency band is prescribed by governmental regulation and depends upon the characteristics of the transmitters and receivers.

It is therefore necessary to control the output frequency of the transmitters within the system such that transmissions are limited to a predetermined frequency range. While the frequency range may be defined somewhat by the design of the system, tight control of the output frequency is often difficult without complex systems, such as those using precision components or feedback configurations.

Moreover, because the monitors may operate over a wide range of operating environments, including wide temperature variations, component values may vary. Consequently, the output frequencies may drift outside of the design limits as the operating temperature changes.

SUMMARY OF THE INVENTION

A method of storing sequences in maximum and minimum limit locations in a memory within a frequency hopping transmitter establishes maximum and minimum frequencies. The transmitter transmits radiowave signals at frequencies determined by an input voltage from a voltage supply received at a frequency adjust input. The method includes the steps of producing a series of test data sequences with a microprocessor and supplying the series of test data sequences to the voltage generator such that the voltage generator produces a series of voltages, each corresponding to a respective data sequence. The voltages from the voltage generator are supplied to the frequency adjust input of the transmitter such that the transmitter transmits radiowave signals at the frequencies corresponding to the voltages. The radiowave signals are then received with a radiowave receiver and the frequencies are detected with a frequency counter. For the radiowave signal having a frequency closest to, but less than, the maximum frequency, the corresponding data sequence is identified and stored in a maximum limit location. Also, for the frequency closest to, but greater than, the minimum frequency, the corresponding data sequence is identified and stored in a minimum limit location.

After the maximum and minimum data sequences are determined, a general table of maximum and minimum data sequences corresponding to several temperature ranges is generated based upon an expected response of the transmitter. The expected response is determined by considering measurements of the response of several transmitters measured during previous tests.

The transmitter also includes a coarse adjust input which allows frequency ranges to be selected. In the method, the steps of identifying the maximum and minimum data sequences are repeated for each of a high, medium, and low coarse setting. The maximum and minimum data sequences are then selected from among the three sets of maximum and minimum data sequences.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a representational view of a system according to the invention including three monitoring stations and a mobile receiver.

FIG. 2 is a block diagram of a monitoring station including a transmitter according to the invention.

FIG. 3 is a diagram of a data structure showing an action table and a fine adjust table.

FIG. 4 is a block diagram of an apparatus for temperature compensation, including a temperature sensor circuit.

FIG. 5 is a flow chart showing the steps for frequency selection and transmission.

FIG. 6 is a block diagram representing a random number table and address pointers.

FIG. 7 is a diagrammatic representation of an interactive tuning station.

FIGS. 8A and 8B is a flow chart presenting tuning of a monitoring station to establish maximum and minimum frequencies.

DETAILED DESCRIPTION OF THE INVENTION

As shown in FIG. 1, three monitoring stations 40, 42, 44 are spaced apart in a data collection area. The monitoring stations 40, 42, 44 are data gathering stations including power monitors 34, 36, 38 such as power meters used in typical residences or other facilities to monitor electrical power usage. Because the monitoring stations 40, 42, 44 are used primarily for monitoring power, they are equipped to draw power from the electrical line serving the facility eliminating the need for battery-powered operation and eliminating the need for battery replacement. While only three monitoring stations 40, 42, 44 are shown for clarity of presentation, it will be understood that the number of stations may be significantly higher.

Each of the monitoring stations 40, 42, 44 includes a respective transmitter 46, 48, 50 transmitting radiowave signals D40, D42, D44 with a respective microstrip antenna 52, 54, 56 within the transmitter. Because the monitoring stations 40, 42, 44 do not operate on battery power, they are not strictly limited by power use constraints and can operate continuously without need for a "wake-up" signal. The radiowave signals D40, D42, D44 consist of finite duration "bursts" emitted by the antennas 52, 54, 56. Each of the bursts is formed by an antenna driver 65 within the oscillator by modulating a carrier signal at a respective output frequency f_(out) with a digital sequence representing data collected by the monitors 34, 36, 38 using On-Off keying. Each digital sequence includes a first portion representing the monitored information, a second portion representing the identification number of the unit and a third portion representing other information, such as the unit type and tamper information. The transmission of each burst is repeated several times to form a group with each burst in the group being separated from the preceding burst by a selected time period and each group being separated by a selected interval.

The groups of bursts are received by a mobile receiver 58 having a receiving antenna 60 that is driven past the monitoring stations 40, 42, 44 in a van 62. Upon receiving the group, the receiver 58 decodes them to obtain their digital sequences. The receiver 58 then stores the data for later communication to a central system which uses the data to calculate power usage, generate power bills, and identify meter tampering.

As represented by the intersecting signals D40, D42, D44 in FIG. 1, the receiving antenna 60 may be simultaneously within range of more than one of the signals D40, D42, D44. If no action is taken to prevent the signals D40, D42, D44 from "colliding," the signals D40, D42, D44 may arrive simultaneously at the receiver 58, interfering with each other and causing data loss or miscommunication. To minimize such collisions, the intervals between the groups of bursts and the output frequencies f_(out) of each of the signals D40, D42, D44 are varied randomly, as discussed below with respect to FIG. 2. This reduces the possibility that any two signals will arrive with the same frequency and at the same time to the receiver 58, thereby minimizing the risk of data collision at the receiver.

While the output frequency f_(out) of each of the transmitters 46, 48, 50 may be varied, the frequency range over which the transmitters may transmit is limited between a maximum frequency f_(max) and a minimum frequency f_(min). The maximum frequency f_(max) and minimum frequency f_(min) may be established by operational parameters of the receiver 58 or by governmental regulation. The transmitters 46, 48, 50 must therefore limit their respective output frequencies f_(out) to the allowed frequency range.

Variation of output frequencies is best explained using the block diagram structure of the monitoring station 40 as presented in FIG. 2. Operation of the monitoring station 40 and interface between the transmitter 46 and monitor 34 is controlled by an integrated controller 72. The controller 72 may be a microprocessor or may be implemented with another integrated device, such as a microcontroller.

Within the transmitter 46 is a voltage controlled oscillator 64 that produces a radiowave signal at a frequency f_(out) to drive the antenna 52 through an antenna driver 65. The oscillator's output frequency f_(out) is determined upon the voltage levels of control voltages applied to a pair of control inputs 66A, 66B. RF oscillators producing output frequencies dependent upon input control voltages are known. Such RF oscillators typically use the capacitance of a varactor within a reactive circuit to establish an output frequency. By varying the voltage applied to the varactor, the capacitance of the varactor is altered, changing the output frequency of the oscillator.

In the embodiment shown in FIG. 2, the oscillator 64 has two control inputs, a fine control 66A and a coarse control 66B to allow an increased range of frequency control. This dual control is realized using two varactors, a fine adjust varactor 67 and a coarse adjust varactor 69. The coarse adjust varactor 69 receives three control voltage levels to place the output frequency f_(out) in one of three ranges, low, medium, and high. The fine adjust varactor 67 receives a fine adjust voltage to set the output frequency f_(out) to selected frequencies within the range established by the coarse adjust varactor 67.

The coarse adjust varactor 69 is referenced to 5 volts by connection to the microstrip antenna 52 which is biased at 5 volts. The controller 72 then establishes the three coarse voltages for the coarse adjust varactor 69 with a logic output referenced to 5 volts by a pull-up resistor R1 through a node A. A voltage divider 71 is connected between the node A, ground and an isolation resistor R3. The isolation resistor R3 delivers the coarse adjust control voltage from the voltage divider to the coarse control 66B.

The three voltage levels depend upon the logic level of the logic output, the voltage divider 71, and the value of the resistor R1. To select one of the three levels, the controller 72 sets the logic output to a high, open, or low state. When the logic output is set to high, the voltage at the node A is established at 5 volts, causing 0.5 volts to be applied across the varactor diode 69 through the isolation resistor R3. When the logic output is set to open, the voltage at the node A is established by the resistor divider formed by the pull-up resistor R1 and the voltage divider 71. This voltage is reduced by the voltage divider 71 and is applied through the isolation resistor to the varactor diode 69. When the controller output is set to low, the controller 72 pulls the voltage at the node A down and the voltage across the varactor diode is approximately 5 volts.

The fine control voltage is supplied by a voltage generator 70 in response to a digital data sequence provided by the controller 72 to the voltage generator 70 along a data bus 74. A 6-bit data sequence is used so that the voltage generator 70 may be realized using a 6-bit D/A converter. The controller 72 can therefore select the output frequency f_(out) by setting the coarse adjust voltage to selected frequency range, and supplying a 6-bit data sequence to the voltage generator 70.

The data sequence provided by the controller 72 to the voltage generator 70 is determined in response to data retrieved from a memory 76. The memory 76 includes several memory portions containing control data for operating the monitoring station 40. The structure of the memory 76 and selection of the data is discussed in greater detail below with respect to FIG. 3.

Because the output frequency f_(out) depends upon the control voltages, the maximum and minimum frequencies f_(max), f_(min) for each coarse voltage correspond to a minimum fine control voltage v_(min) and maximum fine control voltage v_(max), respectively. The minimum and maximum fine control voltages in turn correspond to minimum and maximum values of the 6-bit data sequences retrieved from the memory 76. Because the electrical characteristics of each of the components within the monitoring stations 40, 42, 44 may vary from station to station, the 6-bit data sequences corresponding to the maximum frequency f_(max) and the minimum frequency f_(min) may vary from unit to unit. Therefore, each unit must be tuned to identify the 6-bit data sequences corresponding to the maximum frequency f_(max) and the minimum frequency f_(min). The 6-bit data sequences for room temperature (25° C.) are identified using a tuning station (not shown) and are stored in corresponding limit memory locations 78, 80 in the memory 76 along with an additional 2-bit sequence representing the coarse adjust setting (low, medium, high) at 25° C.

In addition to varying from unit to unit, the data sequences corresponding to the minimum and maximum frequencies f_(min), f_(max), vary according to temperature, as determined by the temperature-dependent electrical characteristics of the components. To accommodate the varying limits, an action table 82 is used to compensate the fine adjust limits by providing a link to a fine adjust table 84 which contains pairs of secondary limits each corresponding to specified frequency ranges.

The data structure used to store the 2-bit coarse adjustment settings and the 6-bit data sequences for fine adjustment is presented in FIG. 3. The data is stored in two parts, a first part stored in the action table 82 and a second part stored in the fine adjust table 84. To allow data in the tables to be updated, the portion of the memory 76 in which the data is stored is an erasable read only memory, such an EEPROM. The action table 82 has eight memory locations, each corresponding to a discrete temperature range T0-T7 and each containing an 8-bit byte. An example of an 8-bit byte is given by the sequence 00100010 in location 83 corresponding to temperature range T5. As represented by the divider line in the action table 82, each of the 8-bit bytes is broken into two 4-bit subsequences or nibbles.

The first 4-bit nibble determines the coarse adjust voltage. As discussed above, the coarse adjust voltage is limited to three possibilities (low, medium, and high). Therefore, only the two least significant bits of the coarse adjust 4-bit nibble are required to select the coarse adjust voltage. The remaining 2-bits are reserved for later development of the system. A "01" sequence represents a low range of the coarse adjust (i.e., the node A of FIG. 2 is pulled down to a zero level). Similarly, a 10 or 11 sequence represents tuning to the medium level and a 00 sequence represents tuning to a high level.

The second 4-bit nibbles of the 8-bit bytes in the action memory 82 represent pointers relative to a starting address of the fine adjust table 84. The fine adjust table 84 contains 32 bytes grouped in pairs, with each pair of bytes containing a pair of data sequences representing the maximum and minimum 6-bit data sequences for the frequency range. If the temperature is within the 10°-41° C. range, the maximum and minimum values are set to hexadecimal "FF," representing an invalid fine adjust setting. The microprocessor 72 responds to the invalid data by retrieving the fine adjust data directly from the memory 76. The byte containing the maximum data sequence is selected by identifying the starting address 86 of the fine adjust table and adding two times the 4-bit nibble to the starting address 86. The byte containing the minimum data sequence is the immediately next byte in the fine adjust table 84.

For example, for the 8-bit data sequence in the memory location 83, the 4-bit nibble 0010 represents a binary 2. This indicates that the third pair (00 is a valid count representing the first byte) of bytes 88 in the fine adjust table 84 will be used. The address of the first 6-bit data sequence in the third pair of bytes 88 is the starting address 86 plus two times the binary sequence 0010 (or the starting address plus 4) as indicated by the pointer arrow 90 in FIG. 3. If the data retrieved from the fine adjust table 84 is a hexadecimal FF, the microprocessor 72 recognizes the data as invalid and retrieves the fine adjust data directly from the memory 76. As discussed above, once the maximum and minimum data sequences are retrieved from the fine adjust table 84 (or the values from the memory 76), they are used to establish allowable data sequences to be applied to the voltage generator 70 to produce the fine adjust control voltage at the input 66A of the RF oscillator. The actual data sequences to be applied to the voltage generator 70 are selected from a random number table 109 presented in FIG. 6 according to the pointer system. The random number table 109 is stored in the memory 76 and includes 256 memory locations with each memory location identified by an 8-bit offset address referenced to the starting address 111 of the random number table 109. For example, if the starting address 111 is 2068, an 8-bit offset address of 0000011 would be the third memory address after 2068 or memory address 2071. Each of the memory locations contains a 6-bit randomly generated number. Together with the coarse adjust voltage applied to the coarse input 66B of the RF oscillator the fine adjust voltage determines the output frequency f_(out) of the RF oscillator.

In order to select the proper 8-bit byte from the action table 82, the monitoring station must first determine the operating temperature range. To determine the operating temperature range, the monitoring station, includes a temperature sensing circuit 94 as shown in FIG. 4. The temperature sensing circuit 94 determines temperature by detecting a temperature-dependent variation in rise time of the voltage across a capacitor 96 in an RC circuit. To make the rise time of the capacitor voltage temperature dependent, the resistive component of the RC circuit is realized with a thermistor 98 in thermal contact with the transmitter 46. Thus, as the temperature of the transmitter 46 varies, the resistive component of the RC circuit varies accordingly. As is known, for a step voltage input the rise time of the voltage across the capacitor 96 depends upon the impedance of the thermistor 98. Thus, the time it takes for the capacitor voltage to reach a selected reference voltage will correspond to the temperature of the transmitter 46.

To determine when the voltage across the capacitor 96 reaches the reference voltage, the capacitor voltage is applied to one input 102 of a comparator 100 and the reference voltage is applied to the second input 104. The comparator 100 produces an output signal when the capacitor voltage reaches the reference voltage. The output signal from the comparator 100 is input to a first input of a timer 106 and the step voltage is applied to a second input of the timer. The timer 106 can thus measure the time difference between the leading edge of the step input voltage and the time when the capacitor voltage reaches the reference voltage, giving a measurement of the rise time of the capacitor voltage.

While the timer 106 could be realized with a conventional component, the timer in the preferred embodiment is realized using a timed program loop in the controller 72 to reduce the number of components. The timed program loop is a software loop in the controller 72 having a fixed duration. The controller 72 determines the rise time by counting the number of times the loop is performed while the capacitor voltage rises to the reference voltage.

Because the number of program loops is temperature dependent, the action table 82 of FIG. 3 is established with each memory location in the action table corresponding to a range of loop counts. The controller 72 then identifies the location in the action table 82 by counting the number of loops and comparing the number of loops to the numbers corresponding to each of the memory locations in the action table. For example, at a temperature of 25° C., the thermistor value, capacitor value, and loop time may be chosen to allow the program loop to complete 12 loops before the capacitor voltage reaches the reference voltage. The temperature range T4 would then be assigned values between 9 and 16 program loops. If the program completed 17 program loops, the controller 72 would retrieve data from temperature range T5 which corresponds to 17-32 program loops.

The intervals between groups of bursts are varied within the predetermined limits, while the time periods between bursts within a group are constant. The minimum time spacing between bursts is typically not dependent upon temperature and are established as fixed part of the system design with the minimum spacing between bursts selected as 60 ms. The minimum time spacing is established by a software routine which runs before and after each burst is transmitted.

A data sequence representing the time increment is stored in an increment location 89. This data sequence and minimum time spacing established in software define the time interval between groups within the minimum and maximum limits, as described below with respect to FIG. 5.

The process of selecting the output frequency and transmitting data is presented in flow diagram form in FIG. 5. The controller 72 initiates transmission of data by producing a Start of Transmission signal as shown in block 500. In response to the Start of Transmission signal the controller 72 applies the step voltage to the RC circuit and the temperature sensing circuit 94 determines the number of loops completed as the voltage of the capacitor 96 rises to the reference voltage in step 502. In response to the loop count, the controller 72 retrieves the 8-bit byte from the action table 82 in the memory 76.

The controller 72 extracts the 2 coarse select bits from the first 4-bit nibble to establish the coarse adjust voltage in step 503. Then, in step 504, the controller 72 identifies the addresses 88A, 88B in the fine adjust table 84 of the fine adjust data sequences corresponding to the maximum and minimum frequency. In step 506, the controller 72 retrieves the 6-bit fine adjust data sequences from the fine adjust table 84. The controller 72 then, in step 508, selects data from the random number table 109 shown in FIG. 6.

In step 510, after the controller 72 has retrieved the 6-bit random number, the controller 72 compares the random number to the 6-bit data sequences retrieved from the fine adjust table 84 in step 506. If, in step 512, the random number is within the limits specified by the data retrieved in step 506, the controller 72 provides the 6-bit random number to the voltage generator 70 in step 514 and the coarse voltage to the coarse input 66B of the oscillator 64. Alternately, the random number may be used as an address in a look-up table to determine an appropriate 6-bit data sequence for input to the D/A converter. This would be appropriate where desired output frequencies are unevenly spaced or where the response of the oscillator 64 is non-linear.

When the controller 72 provides the 6-bit data sequence, the voltage generator 70 supplies the fine adjust voltage to the fine adjust input 66A and, in response to the fine adjust voltage, the oscillator 64 produces the radiowave signal at the output frequency f_(out) corresponding to the 6-bit data sequence from the random number table 109. The antenna driver 65 modulates the radiowave signal with the data from the monitor 34 in step 516 to form the burst and, in step 518, the transmitter 46 transmits the burst, pause for the minimum time spacing (60 ms), and repeats the steps from step 508 until the burst has been repeated a predetermined number N of times at the frequency of the radiowave signal.

Returning to decision block 512, if the random number is not within the limits, the controller 72 returns to step 508, where it retrieves another random number from the random number table 109. The loop is continued until a valid random number is found. After a valid random number is identified and data is transmitted successfully, the monitor 34 pauses for a random time interval as shown in step 520.

As noted above, the controller 72 retrieves data from the random number table 109 according to a pointer system. That is, the controller 72 includes a frequency pointer counter 124 indicating an address in the random number table 109. The controller 72 also includes an interval pointer counter 126 to allow the controller 72 to independently select random numbers to generate random intervals between bursts.

When the monitoring station 40 is initialized, the frequency pointer counter is initialized to a starting address 128 indicated by the last 8 bits of the 24-bit identification number of the monitoring station. This allows the monitoring station 40 to be initialized to a different output frequency f_(out) than nearby stations. The frequency pointer is incremented or decremented each time data is retrieved from the random number table 109. The incrementing or decrementing of the pointer is controlled by the least significant bit of the unit identification number. If the least significant bit of the unit identification number is a "1," the frequency pointer is incremented. If the least significant bit is a "0," the frequency pointer is decremented.

The data stored in the action table 82 and the fine adjust table 84 of FIG. 3 are established with a tuning station 130 under control of a microprocessor 132 as shown in FIG. 7. The tuning station 130 includes a receiving antenna 136, receiver 138, and frequency counter 140 operating under control of the microprocessor 132. The microprocessor 132 is coupled to store data to the memory 76 through a data bus 134.

The steps for establishing the data structure of FIG. 3 with the tuning station 130 are presented in the flow chart of FIGS. 8A and 8B. The microprocessor 132 initiates tuning by establishing a coarse voltage adjust in step 802. The controller 72 then generates a reference 6-bit data sequence d_(ref) corresponding to a reference voltage v_(ref) at step 804. The initial reference data sequence d_(ref) and coarse adjust voltages are chosen to place the output frequency f_(out) roughly in the center of the allowable frequency range (between the maximum frequency f_(max) and the minimum frequency f_(min)). To make the selection, the microprocessor 132 selects a coarse adjust corresponding to a "MID" range and a data sequence d_(ref) expected to correspond to the middle of the allowable frequency range. That is, based upon reference data for systems tested in the past, the reference data sequence d_(ref) corresponds to a linear average of the typical maximum and minimum output frequencies.

The voltage generator 70 produces the voltage v_(ref) in response to the data sequence d_(ref) at step 806 and the voltage v_(ref) is applied to the control input 66A of the oscillator 64 in step 808. In response to the voltage v_(ref) at the control input 66A and the coarse adjust voltage at the control input 66B, the oscillator 64 produces a signal at an output frequency f_(out) (v_(ref)) which is emitted through the antenna 52 in step 810. The radiowave signal at the output frequency f_(out) (v_(ref)) is received by the antenna 136 and receiver 138 in step 812. In step 814 the frequency counter 140 identifies the frequency f_(out) (v_(ref)) and produces a digital representation which it inputs to the microprocessor 132. The microprocessor 132 compares the output frequency f_(out) (v_(ref)) to the maximum frequency f_(max) and the minimum frequency f_(min) in step 816 to determine if the output frequency f_(out) (v_(ref)) is within the frequency limits. If the maximum frequency f_(max) has not been determined in the decision block 818, the tuning station searches for the maximum frequency f_(max) by proceeding to step 820. In step 820, the microprocessor 132 determines if the output frequency f_(out) (v_(ref)) is greater than the maximum frequency f_(max).

If the output frequency f_(out) (v_(ref)) is less than the maximum frequency f_(max), the station will repeat its search at a new frequency. To repeat the search, the data sequence d_(ref) is first stored as a retained data sequence d_(refold1) in step 823. The data sequence d_(ref) is then adjusted to increase the output frequency f_(out) (v_(ref)) in step 822. The steps from step 806 through 820 are repeated until the output frequency f_(out) (v_(ref)) is greater than the maximum frequency f_(max) in step 820. When the output frequency f_(out) (v_(ref)) is greater than the maximum frequency f_(out) in step 820, the station recognizes the preceding search loop as having identified the maximum allowable value of the data sequence d_(ref). The maximum data sequence d_(max) will be set equal to the retained data sequence d_(refold1) and stored in the limit memory location 80 in step 824.

At this point, the maximum frequency f_(out) has been determined and the data sequence corresponding to the maximum frequency f_(max) has been stored. The station then begins searching for the data sequence corresponding to the minimum frequency f_(min). To begin, the data sequence d_(ref) is reset to the original data sequence d_(ref) in step 825 and storing the value as a retrieved data sequence d_(refold2) in step 826. The station then begins searching for the minimum frequency f_(min) by adjusting the data sequence d_(ref) to decrease the output frequency f_(out) (v_(ref)) in step 828. The steps 806-818 are repeated to see if the output frequency f_(out) (v_(ref)) is within the frequency limits. At step 818, the microprocessor 82 determines that the maximum frequency f_(max) has already been determined (in step 820 of an earlier loop) and the microprocessor 82 moves to decision step 830 to determine if the output frequency f_(out) (v_(ref)) is less than the minimum frequency f_(min). If the output frequency f_(out) (v_(ref)) is still greater than the minimum frequency f_(min) in step 830, the value of the data sequence d_(ref) is stored as a retained data sequence d_(refold2) in step 832 for later use. The microprocessor 82 then adjusts the data sequence d_(ref) in step 828 to decrease the output frequency f(v_(ref)).

If in decision block 830, it is determined that the frequency f(v_(ref)) is less than the minimum frequency f_(min), the data sequence corresponding to the minimum frequency is set equal to the stored data sequence d_(refold2) in block 834. In step 836, this sequence is then stored in the memory location 80 as the minimum data sequence for an ambient temperature range of 10° C.-41° C.

While the station has identified the minimum and maximum data sequences for ambient temperature, the minimum and maximum data sequences must be established for other temperature ranges. While this could be performed by temperature controlling the tuning station 130 and monitoring the response at various temperatures, it has been determined that the maximum and minimum data sequences for various temperature ranges may be obtained by scaling the maximum and minimum data sequences determined at 25° C. based upon the typical unit drifts over temperature using a general purpose temperature compensation algorithm stored in the memory 76. To allow the temperature compensation to be adjusted in the future, the general purpose temperature compensation algorithm is stored in an erasable nonvolatile memory, such as an EEPROM. Based upon the maximum and minimum data sequences stored in the memory locations 78, 80 and the temperature compensation algorithm, the maximum and minimum data sequences d_(max), d_(min) at other operating temperature ranges are calculated when the system is initialized and downloaded to the memory 76 to create the action table 82 and the fine adjust table 84 discussed above.

From the foregoing, it will be appreciated that, although embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims. 

I claim:
 1. A method for storing sequences corresponding to minimum and maximum frequencies in maximum and minimum limit locations, respectively, in a frequency hopping transmitter, wherein the transmitter transmits radiowave signals at frequencies determined by an input voltage from a voltage generator received at a frequency adjust input, comprising:(a) producing a series of test data sequences with a microprocessor; (b) supplying a series of test data sequences to the voltage generator such that the voltage generator produces a series of voltages, each corresponding to a respective data sequence; (c) supplying the voltages from the voltage generator to the frequency adjust input of the transmitter such that the transmitter transmits the radiowave signal at the frequencies corresponding to the voltages; (d) receiving with a radiowave receiver the radiowave signals from the transmitter; (e) detecting the frequencies of the radiowave signals; (f) for the radiowave signal having a frequency closest to, but less than to the maximum frequency, identifying the corresponding data sequence; (g) storing the data sequence corresponding to the frequency closest to, but less than the maximum frequency in the maximum limit location; (h) for the frequencies closest to, but greater than to the minimum frequency, identifying the corresponding data sequence; and (i) storing the data sequence corresponding to the radiowave signal having a frequency closest to, but greater than the minimum frequency in the minimum limit location.
 2. The method of claim 1, further including the steps of:(j) generating a general temperature compensation table based upon expected temperature response of the data transmitter; and (k) producing, from the stored data corresponding to the minimum and maximum frequencies and the general temperature compensation table a table of maximum and minimum data sequences corresponding to operating temperatures of the transmitter; and (l) storing the table of maximum and minimum data sequences in a limit memory within the transmitter.
 3. The method of claim 1 wherein the transmitter also includes a coarse adjust input, further including the steps of:producing a coarse adjust voltage; and applying the coarse adjust voltage to the coarse adjust input.
 4. The method of claim 1 wherein the step of producing a test data sequence comprises:establishing for each transmitter in a plurality of transmitters a respective data sequence corresponding to the maximum frequency; establishing for each transmitter in the plurality of transmitters a respective set of data sequences corresponding to the minimum frequency; determining from the sets of data sequences corresponding to the maximum and minimum data sequences a data sequence expected to correspond to a frequency between the maximum and minimum frequencies; and producing the test data sequence from the data sequence expected to correspond to a frequency between the maximum and minimum frequencies.
 5. The method of claim 1 wherein the step of identifying the data sequence corresponding to the maximum frequency includes the steps of:selecting a first portion of the series of test data sequences; for each successive test data sequence in the first portion, upon detecting the frequency of the radiowave signal corresponding to the test data sequences, comparing it to the maximum frequency; and if the frequency corresponding to the data sequence is greater than the maximum frequency, identifying the immediately preceding data sequence in the first portion as the data sequence corresponding to the maximum frequency.
 6. The method of claim 5 wherein the step of identifying the data sequence corresponding to the minimum frequency comprises the steps of:selecting a second portion of the series of test data sequences; for each test data sequence in the second portion, upon detecting the frequency of the radiowave signal for the test data sequence, comparing it to the minimum frequency; and if the frequency corresponding to the data sequence is less than the minimum frequency, identifying the immediately preceding test data sequence in the second portion as the data sequence corresponding to the minimum frequency.
 7. A method for interactively tuning a data transmitter to emit radiowave signals between a maximum frequency and a minimum frequency, wherein the frequency of the radiowave signal emitted by the transmitter is controlled by an input voltage from a voltage generator received at a frequency adjust input, comprising the steps of:(a) producing a test data sequence; (b) storing the test data sequence in a temporary location in a memory; (c) supplying the test data sequence to the voltage generator such that the voltage generator produces a voltage corresponding to the data sequence; (d) supplying the voltage from the voltage generator to the frequency adjust input of the transmitter such that the transmitter transmits a radiowave signal; (e) receiving with a radiowave receiver the radiowave signal from the transmitter; (f) detecting the frequency of the radiowave signal; (g) if the frequency of the radiowave signal is between the minimum and maximum frequencies, storing the data sequence in the temporary location, adjusting the data sequence and repeating steps (a) through (f); (h) if the frequency of the radiowave signal is greater than the maximum frequency, transferring the data sequence from the temporary location to a memory location corresponding to a maximum frequency data sequence; and (i) if the frequency of the radiowave signal is less than the minimum frequency, transferring the data sequence from the temporary location in the memory to a location corresponding to the minimum frequency.
 8. The method of claim 7, further including the steps of:generating a general temperature compensation table based upon an expected temperature response of the data transmitter; and producing, from the data stored in the memory locations corresponding to the minimum and maximum frequencies and the general temperature compensation table a table of maximum and minimum data sequences corresponding to operating temperatures of the transmitter; and storing the table of maximum and minimum frequencies in a memory within the transmitter.
 9. The method of claim 7 wherein the transmitter includes a coarse voltage generator producing coarse adjust voltage in response to coarse adjust data and wherein the transmitter has a frequency range corresponding to the coarse adjust voltage, further including the steps of:producing a first test coarse data sequence; providing the first test coarse data sequence to the coarse voltage generator; and repeating steps (a) through (i) to determine the maximum and minimum frequency corresponding to the first test coarse data sequence for the frequency range corresponding to the first test coarse data sequences.
 10. The method of claim 9, further including the steps of:producing a second test coarse data sequence; providing the second test coarse data sequence to the coarse voltage generator; after providing the second test coarse data sequence, repeating steps (a) through (i) to determine the maximum and minimum frequency corresponding to the second test coarse data sequence the frequency range corresponding to the second test coarse data sequences; and selecting one of the first and second test coarse data sequences in response to the determined respective maximum and minimum frequencies.
 11. The method of claim 10, further including the steps of:producing a third test coarse data sequence; providing the third test coarse data sequence to the coarse voltage generator; after providing the third test coarse data sequence, repeating steps (a) through (i) to determine the maximum and minimum frequency corresponding to the third test coarse data sequence for the frequency range corresponding to the third test coarse data sequences; and selecting one of the first, second and third test coarse data sequences in response to the determined respective maximum and minimum frequencies. 